package xcmd

import (
	"fmt"
	"os"
	"strings"

	"gitee.com/xiaoyutab/xgotool/xerror"
)

// 获取图片的平均颜色【值为16进制的颜色色值（6位长度无前缀#，如：C6BEB2）】
//
//	input	输入的图片文件
func Image2averageColor(input string) (string, error) {
	if is_windows {
		return "", xerror.New("抱歉，此命令暂不支持运行在Windows平台下")
	}
	// 输入路径为空
	if input == "" {
		return "", xerror.New("图片输入路径不能为空")
	}
	// 输入文件不存在
	if _, err := os.Stat(input); err != nil {
		return "", err
	}
	if !cmd_check[IDENTIFY].Exist {
		return "", xerror.New("命令不存在，请执行 sudo apt-get install imagemagick 进行安装")
	}
	input = strings.ReplaceAll(input, " ", "\\ ")
	// 命令拼接
	cmds := fmt.Sprintf(`%s -verbose %s 2>&1 | %s mean | %s -3 | %s '{match($0," ");print $2}' | %s '{printf("%%02X",$1)}'`,
		cmd_check[IDENTIFY].Path, input, cmd_check[GREP].Path, cmd_check[HEAD].Path, cmd_check[AWK].Path, cmd_check[AWK].Path)
	// 命令执行
	out, err := Exec(cmd_check[BASH].Path, "-c", cmds)
	if err != nil {
		return "", err
	}
	return out, nil
}
